package com.ruoyi.maintain.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.car.api.domain.CheCar;

import com.ruoyi.maintainImage.domain.CheMaintainImage;
import com.ruoyi.user.api.domain.CheUser;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
import org.springframework.data.annotation.Transient;

/**
 * 维修任务对象 che_maintain
 *
 * @author ruoyi
 * @date 2025-01-02
 */
public class CheMaintain extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * id
     */
    private Long id;

    /**
     * 维修单号
     */
    @Excel(name = "维修单号")
    private String number;

    /**
     * 用户id
     */
    @Excel(name = "用户id")
    private Long userId;

    /**
     * 车辆id
     */
    @Excel(name = "车辆id")
    private Long carId;

    /**
     * 联系方式
     */
    @Excel(name = "联系方式")
    private String phone;

    /**
     * 维修方式
     */
    @Excel(name = "维修方式")
    private Long type;

    /**
     * 取车地址
     */
    @Excel(name = "取车地址")
    private String address;

    /**
     * 预约日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    @Excel(name = "预约日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date subscribeTime;

    /**
     * 提交日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    @Excel(name = "提交日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date submitTime;

    /**
     * 到场日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" , timezone = "GMT+8")
    @Excel(name = "到场日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date presentTime;

    /**
     * 核销码
     */
    @Excel(name = "核销码")
    private String verificationCode;

    /**
     * 整车照片
     */
    @Excel(name = "整车照片")
    private String photo;

    /**
     * 维修状态
     */
    @Excel(name = "维修状态")
    private Long maintainState;

    /**
     * 状态
     */
    @Excel(name = "状态")
    private Long state;

    @Transient
    private CheMaintainImage cheMaintainImage;

    public CheMaintainImage getCheMaintainImage() {
        return cheMaintainImage;
    }

    public void setCheMaintainImage(CheMaintainImage cheMaintainImage) {
        this.cheMaintainImage = cheMaintainImage;
    }

    @Transient
    private CheCar cheCar;

    public CheCar getCheCar() {
        return cheCar;
    }

    public void setCheCar(CheCar cheCar) {
        this.cheCar = cheCar;
    }

    @Transient
    private CheUser cheUser;

    @Transient
    private String beginSubscribeTime;

    @Transient
    private String endSubscribeTime;

    public String getBeginSubscribeTime() {
        return beginSubscribeTime;
    }

    public void setBeginSubscribeTime(String beginSubscribeTime) {
        this.beginSubscribeTime = beginSubscribeTime;
    }

    public String getEndSubscribeTime() {
        return endSubscribeTime;
    }

    public void setEndSubscribeTime(String endSubscribeTime) {
        this.endSubscribeTime = endSubscribeTime;
    }

    public CheUser getCheUser() {
        return cheUser;
    }

    public void setCheUser(CheUser cheUser) {
        this.cheUser = cheUser;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setNumber(String number) {
        this.number = number;
    }

    public String getNumber() {
        return number;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getUserId() {
        return userId;
    }

    public void setCarId(Long carId) {
        this.carId = carId;
    }

    public Long getCarId() {
        return carId;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getPhone() {
        return phone;
    }

    public void setType(Long type) {
        this.type = type;
    }

    public Long getType() {
        return type;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getAddress() {
        return address;
    }

    public void setSubscribeTime(Date subscribeTime) {
        this.subscribeTime = subscribeTime;
    }

    public Date getSubscribeTime() {
        return subscribeTime;
    }

    public void setSubmitTime(Date submitTime) {
        this.submitTime = submitTime;
    }

    public Date getSubmitTime() {
        return submitTime;
    }

    public void setPresentTime(Date presentTime) {
        this.presentTime = presentTime;
    }

    public Date getPresentTime() {
        return presentTime;
    }

    public void setVerificationCode(String verificationCode) {
        this.verificationCode = verificationCode;
    }

    public String getVerificationCode() {
        return verificationCode;
    }

    public void setPhoto(String photo) {
        this.photo = photo;
    }

    public String getPhoto() {
        return photo;
    }

    public void setMaintainState(Long maintainState) {
        this.maintainState = maintainState;
    }

    public Long getMaintainState() {
        return maintainState;
    }

    public void setState(Long state) {
        this.state = state;
    }

    public Long getState() {
        return state;
    }

    @Override
    public String toString() {
        return "CheMaintain{" +
                "id=" + id +
                ", number='" + number + '\'' +
                ", userId=" + userId +
                ", carId=" + carId +
                ", phone='" + phone + '\'' +
                ", type=" + type +
                ", address='" + address + '\'' +
                ", subscribeTime=" + subscribeTime +
                ", submitTime=" + submitTime +
                ", presentTime=" + presentTime +
                ", verificationCode='" + verificationCode + '\'' +
                ", photo='" + photo + '\'' +
                ", maintainState=" + maintainState +
                ", state=" + state +
                ", cheMaintainImage=" + cheMaintainImage +
                ", cheCar=" + cheCar +
                ", cheUser=" + cheUser +
                ", beginSubscribeTime=" + beginSubscribeTime +
                ", endSubscribeTime=" + endSubscribeTime +
                '}';
    }
}
